#include <bits/stdc++.h>
#define int long long 
using namespace std;
const int maxn = 2e5 + 5;
int arr[maxn];
int nextt[maxn][65];
void solve(){
	int N, k;
	cin >> N >> k;
	for (int i=1;i<=N;i++) {
		cin >> arr[i];
		nextt[i][0] = arr[i];
	}
	// 预处理出 nex[i][j] 表示 从 i 传送 2^j 到达的位置
	for (int j=1;j<=65;j++) {
		for (int i=1;i<=N;i++) {
			nextt[i][j] = nextt[nextt[i][j-1]][j-1];
		}
	}
	
	// 然后处理出 k 的2进制
	int ans = 1;
	int bitt = 0;
	while (k) {
		if (k&1) {
			// 该 位 是 1
			ans = nextt[ans][bitt]; 
		}
		k >>= 1; // 继续处理下一位
		bitt++;
	}
	cout << ans << '\n';
}


signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t;
	t=1;
	while(t--){
		//TODO
		solve();
	}
	return 0;
}

